#ifndef CRASHHANDLER_H
#define CRASHHANDLER_H

#include <QString>
#include <QDateTime>
#include <QDebug>

#ifdef Q_OS_WIN
#include <windows.h>
#endif

class CrashHandler
{
public:
    // 安装崩溃处理器
    static void install();

    // 打印调用栈
    static void printStackTrace();

    // 获取调用栈字符串
    static QString getStackTrace();

private:
    // 信号处理函数
    static void handleCrash(int sig);

    // 写入崩溃日志 (Unix)
    static void writeCrashLog(const QString& stackTrace, int signal);

#ifdef Q_OS_WIN
    // 写入崩溃日志 (Windows)
    static void writeCrashLog(const QString& stackTrace, DWORD exceptionCode);
#endif
};

#endif // CRASHHANDLER_H